Skip to content

[MOO-2499]: Upgrade React 19.3 and React Native 0.88 - #236

Merged
weirdwater merged 15 commits into
mendix:masterfrom
MxKevinBeqo:moo/MOO-2499-rn-088
Oct 27, 2026
Merged

weirdwater merged 15 commits into
mendix:masterfrom
MxKevinBeqo:moo/MOO-2499-rn-088

Conversation

@MxKevinBeqo

@MxKevinBeqo MxKevinBeqo commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

This PR upgrades to React 19.3 and React Native 0.88.

Upgrade the Pluggable Widgets Tools and the widget generator templates to
React Native 0.88 (RC) and React 19.3. (MOO-2499)

- bump react-native, @react-native/babel-preset, react, react-dom,
  react-test-renderer and the React types
- use @react-native/jest-preset for native tests, since React Native no
  longer ships its own Jest preset
- resolve modules with "bundler" in the base tsconfig, since React Native
  only exposes its types through package exports
- add react-native-worklets and @react-native-vector-icons/common to the
  native externals and stop terser from removing directives
- update the migration script, generator templates and command tests

BREAKING CHANGE: widgets are upgraded to React Native 0.88 and React 19.3.
The deprecated react-native-vector-icons package is no longer an external
of native widgets; use the scoped @react-native-vector-icons/* packages.
@MxKevinBeqo
MxKevinBeqo requested a review from a team as a code owner October 5, 2026 11:24
@MxKevinBeqo MxKevinBeqo changed the title docs: add changelog entries for React Native 0.88 upgrade [MOO-2499]: Upgrade React 19.3 and React Native 0.88 Oct 5, 2026
@weirdwater weirdwater self-assigned this Oct 5, 2026
On Windows runners the temp directory can be an 8.3 short path (RUNNER~1).
Node resolved modules through that short path while Jest resolved them
through the long path, so React was loaded twice and the generated native
widget tests failed with "Cannot read properties of null (reading
'useReducer')".
Comment thread packages/pluggable-widgets-tools/tsconfig.json
Comment thread packages/pluggable-widgets-tools/test-config/jest.native.config.js Outdated
@rollup/plugin-typescript requires tslib at build time but only lists it as
an optional peer dependency. It used to be installed by chance through
another package, which is no longer the case, so building a TypeScript
widget could fail with "Could not find module 'tslib'".
- drop the unused react-hot-loader path mapping from the tools tsconfig
- resolve the native Jest preset by name instead of by absolute path
This reverts commit f263b1b. Resolving the native Jest preset by name lets
Jest load it from the real path, which should also avoid loading React twice
when the temp directory is an 8.3 short path on Windows runners.
Restore the react-native-vector-icons external and drop its breaking change
note from the changelog. Removing the old package name is unrelated to the
React Native 0.88 upgrade and can be done separately.
@MxKevinBeqo

Copy link
Copy Markdown
Contributor Author

Thanks for reviewing this @weirdwater , I appreciate it! I addressed the notes.

As the PR description mentions, we will wait for the 12th of October until RN v0.88 releases and then update the dependencies -> rerunning the CI. Until then, I am moving this to Draft at the moment.

@MxKevinBeqo
MxKevinBeqo marked this pull request as draft October 6, 2026 11:25
Replace the 0.88.0-rc.3 pins for react-native, @react-native/babel-preset and @react-native/jest-preset with 0.88.0, including the generator templates and expected outputs, the command-tests and the migration constants.
@MxKevinBeqo
MxKevinBeqo marked this pull request as ready for review October 16, 2026 09:49
Comment thread packages/pluggable-widgets-tools/test-config/jest.native.config.js Outdated
Comment thread packages/pluggable-widgets-tools/configs/rollup.config.native.mjs
MxKevinBeqo and others added 2 commits October 19, 2026 10:20
…native.mjs

Co-authored-by: Yogendra Shelke <yogendrashelke1992@gmail.com>
…e.config.js

Co-authored-by: Yogendra Shelke <yogendrashelke1992@gmail.com>
Comment thread packages/pluggable-widgets-tools/test-config/jest.native.config.js Outdated
…e.config.js

Co-authored-by: Yogendra Shelke <yogendrashelke1992@gmail.com>
@MxKevinBeqo

Copy link
Copy Markdown
Contributor Author

Hey @weirdwater , all the changes are in now, together with the official Rn v0.88, so please whenever you get the chance to re-review the new commits 🙇 .

Comment thread packages/pluggable-widgets-tools/tsconfig.json
Comment thread packages/pluggable-widgets-tools/CHANGELOG.md Outdated
Comment thread packages/pluggable-widgets-tools/configs/rollup-plugin-collect-dependencies.mjs Outdated
weirdwater
weirdwater previously approved these changes Oct 26, 2026
@weirdwater
weirdwater enabled auto-merge October 27, 2026 09:52
@weirdwater
weirdwater merged commit bbf95f7 into mendix:master Oct 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants